Workflow technologies are being more and more widely used. Many enterprises are developing new workflows, or renewing current workflows to adapt them to new service conditions.
A workflow refers to partial or total automation of a business process, in which documents, information or tasks are transferred from one participant to another to be processed according to a set of procedural rules. A workflow is defined, created, operated and managed by a workflow management system. Different workflow management systems have different structures, but in general, include three parts as follows: a workflow defining component for defining workflows, for instance, modelling a workflow by using GUI modelling tool, and deploying the workflow definition into a workflow engine; the workflow engine for interpreting the workflow definition, creating, managing and operating a workflow instance, and during the process, interacting with participants and workflow applications of the workflow; a set of workflow applications for interacting with the workflow engine through APIs provided by the workflow engine, for instance, obtaining and processing a work item, and providing the processing result to the workflow engine, etc.
In the current technology (i.e. BPC Explorer and FileNet BPM of IBM), workflow applications and the workflow itself are tightly coupled with each other. Whenever a new workflow is defined, a new set of workflow applications are required to be developed for the workflow definition. Whenever a current workflow definition is changed, it is required to redevelop or revise part or all of the original set of workflow applications. However, the developing of workflow applications is very hard work. For example, generally speaking, for almost every manual step in workflow applications, several web pages are required to be developed. Provided that an enterprise possesses 10 workflows, each of which contains 10 manual steps, the workload of developing and testing will be huge. Besides, the changing of business is common for enterprises. If it is a must to redevelop or revise workflow applications whenever business is changed, the changing of business will be found hard for developing and testing teams to catch up with.
In addition, even for the same given workflow there may exist requirements as follows:
Different users shall see different information, for example, the managers are able to see employees' salary, while the employees shall not see other employees' salaries;
In different workflow stages, different information shall be seen, for example, the first approver only needs to know request content, while the second approver also needs to know the identity of the first approver;
Different functions require different information, for example, for a data input function, most fields in the user interface shall be editable, while for an approving function, most fields shall be solely for displaying;
Different types of work items in a specific function require different actions, for example, for an invoice based on a purchase order, the system has to check the relevant purchase order in an ERP system, while for a invoice not based on a purchase order, the system does not need the action;
Different conditions determine different actions, for example, after the work item has been approved by the first approver, system shall send e-mail to the next approver, while after the work item has been approved by the last approver, there is no need to send e-mail to the next approver.
In current technology, for each of the different situations, for example, different users, different workflow stages, different functions, different types of work items and different conditions, different workflow applications are required to be developed, and a generic workflow application capable of being adapted to all the different situations cannot be developed, let alone the generic workflow application which is adapted to not only different situations of a same workflow but also different workflows, thus causing heavy developing and testing workload.
A method for designing, developing or generating a generic workflow application and capable of largely reducing developing and testing workload is needed in the field.